import { get, post } from './http'
import  Stomp from 'stompjs';
import { getNewData } from '../tool/common'
import store from '../../store/index'

const host = window.location.protocol + "//" + window.location.host + "/jrzlss/"
// const host = store.state.config.domain

// 获取设备列表
export const getInfoList = (params,callback) => {
    const url = host + 'api/device/list'
    get(url, params).then((res) => {
        callback(res)
    });
}

// 获取实时数据
export const getNewInfo = (params,callback) => {
    //WebSocket 的 url
    var url = store.state.config.WSURL;
    // 设备实时数据的 topic
    var topic = store.state.config.WSTopic + store.state.config.uuid;

    //使用Stomp方式
    var stomp = Stomp.client(url);
    stomp.connect({}, function () {
        //连接成功时，订阅设备数据
        stomp.subscribe(topic, function (result) {
            //获得设备数据,此处为 String 类型
            if (result.body) {
                //转换设备数据为 JSON
                var message = JSON.parse(result.body);
                const results = getNewData(message)
                callback(results)
            }
        });
    });
}

// // 获取设备实时信息
// export const getNewInfos = (params,callback) => {
    
//     const url = config.domain + 'api/site/websocket-sockjs'
//     get(url, params).then((res) => {
//         if(res.code === 200){
//             // 调整url地址
//             const a = res.data.websocket
//             const newa = a.split(':')
//             newa[0] = "https"
//             const b = newa[2].split('/')
//             b[0] = 443
        
//             const restltb = b.join('/')
//             newa[2] = restltb
//             const result = newa.join(":")
        
//             //WebSocket 的 url
//             var url = result;
//             // 设备实时数据的 topic
//             var topic = res.data.topic;

//             //创建 SockJS 的实例
//             var socket = new SockJS(url);
//             //创建 Stomp 实例
//             var stompClient = Stomp.over(socket);
//             //连接 WebSocket server
//             stompClient.connect({}, function () {
//                 //连接成功时，订阅设备数据
//                 stompClient.subscribe(topic, function (res) {
//                     //获得设备数据,此处为 String 类型
//                     if (res.body) {
//                         //转换设备数据为 JSON
//                         var message = JSON.parse(res.body);
//                         console.log('*******************',message)
//                         const result = getNewData(message)
//                         callback(result)
//                     }
//                 });
//             })
//         }
//     });
// }

// 获取设备历史数据
export const getHistoryInfo = (params,callback) => {
    const url = host + 'api/device/data'
    get(url, params).then((res) => {
        callback(res)
    });
}

// 获取设备信息
export const getInfos = (params,callback) => {
    const url = host + 'api/device/query'
    get(url, params).then((res) => {
        callback(res)
    });
}

// 获取阀冷报警列表
export const getAlarmList = (params,callback) => {
    const a = window.localStorage.getItem('config')
    const config =  a ? JSON.parse(a) : {}
    if(config.uuid === '2627-EB48-7F10-BCCF'){
        params.system = 'high1'
    }else if(config.uuid === 'FFA4-EB6C-15A8-3C32'){
        params.system = 'low2'
    }else if(config.uuid === '30E4-EDC0-F9C0-817D'){
        params.system = 'high2'
    }else{
        params.system = 'low1'
    }
    

    const url = host + 'api/alarm/list'
    get(url, params).then((res) => {
        callback(res)
    });
}

// 阀冷报警系统数量总汇
export const getAlarmCount = (params,callback) => {
    const url = host + 'api/alarm/count'
    get(url, params).then((res) => {
        callback(res)
    });
}

// 确认报警接口
export const alarmConfirm = (params,callback) => {
    const url = host + 'api/alarm/confirm?id='+params.id+"&token="+params.token
    post(url, params).then((res) => {
        callback(res)
    });
}

// 确认报警接口
export const alarmRemove = (params,callback) => {
    const url = host + 'api/alarm/remove?ids='+params.ids+"&token="+params.token
    post(url, params).then((res) => {
        callback(res)
    });
}

// 下载报警信息pdf
export const downloadPdf = (params,callback) => {
    const url = host + 'api/alarm/download-pdf?token='+params.token+"&alarmId="+params.alarmId+"&project="+params.project+"&company="+params.company+"&device="+params.device
    var xhr = new XMLHttpRequest();
      
    // xhr.open('GET', url, true);        // 使用GET方式比较简单，参数直接附在URL上
    
    xhr.open('post', url, true); 		//POST的格式相对比较灵活，参数可以有比较多的形式，例如JSON，表单FORM等

    xhr.responseType = "blob";    // 返回类型blob
    
    xhr.setRequestHeader("Content-Type","application/json");//提交的数据为json格式
    
    
    // 定义请求完成的处理函数
    xhr.onload = function () {
    
        // 请求完成
    
        if (this.status === 200) {
    
            // 返回200
    
            var blob = this.response;
    
            var reader = new FileReader();
    
            reader.readAsDataURL(blob);    // 转换为base64，可以直接放入a表情href
    
            reader.onload = function (e) {
    
                // 转换完成，创建一个a标签用于下载
    
                var a = document.createElement('a');
    
                a.download = store.state.config.systemName + '异常分析报告.pdf';
    
                a.href = e.target.result;

                // document.getElementsByName('body').append(a);

                a.click();

                a.remove()

                callback(true)
    
            }
    
        }
    
    };
    
    // 发送ajax请求,案例中我们使用POST的请求格式，参数类型为JSON
    var param = {};
    param.filename = "test";
    xhr.send(param);
}


